subroutine set_transition_rate(lunit,temp)
  use param
  use label_data_param,only:obj_type
  use label_data_param,only:n_obj_type
  use react_data_param,only:react_type
  use react_data_param,only:n_react_type
  use geom_data_param,only:geom_obj
  use geom_data_param,only:n_geom_obj
  use sink_data_param,only:sink_type
  use sink_data_param,only:n_sink_type
  implicit none

  integer,intent(in) :: lunit
  real(dbl),intent(in) :: temp

  integer :: i,j

  ! obj_type
  do i=1,n_obj_type
     if (obj_type(i)%does_move) &
          obj_type(i)%diff_const_rate=&
          obj_type(i)%diff_nu*exp(-obj_type(i)%diff_eb/(kb*temp))

     if (obj_type(i)%does_diss) then
        do j=1,obj_type(i)%diss_type
           obj_type(i)%diss_const_rate(j)=&
                obj_type(i)%diss_nu(j)*&
                exp(-obj_type(i)%diss_eb(j)/(kb*temp))
        end do
     end if
  end do

  ! react_type
  do i=1,n_react_type
     do j=1,react_type(i)%n_data
        react_type(i)%react_const_rate(j)=&
             react_type(i)%react_nu(j)*&
             exp(-react_type(i)%react_eb(j)/(kb*temp))
     end do
  end do

  ! source_type
  do i=1,n_geom_obj
     if (geom_obj(i)%does_diss) then
        do j=1,geom_obj(i)%diss_type
           geom_obj(i)%diss_const_rate(j)=&
                geom_obj(i)%diss_nu(j)*&
                exp(-geom_obj(i)%diss_eb(j)/(kb*temp))
        end do
     end if
  end do
  
  ! sink_type
  do i=1,n_sink_type
     do j=1,sink_type(i)%n_data
        sink_type(i)%react_const_rate(j)=&
             sink_type(i)%react_nu(j)*&
             exp(-sink_type(i)%react_eb(j)/(kb*temp))
     end do
  end do

  return

end subroutine set_transition_rate
